# coding:utf-8
import pandas as pd
import pymysql
from datetime import datetime

# 读取文件
dou1 = pd.read_excel(r'G:\工作\2025年订单\11月\抖音1.xlsx',
                     dtype={'主订单编号': str, '子订单编号': str, '商品ID': str, '达人昵称': str, '选购商品': str,
                            '达人ID': str})
dou1['平台'] = '抖音1'
dou2 = pd.read_excel(r'G:\工作\2025年订单\11月\抖音2.xlsx',
                     dtype={'主订单编号': str, '子订单编号': str, '商品ID': str, '达人昵称': str, '选购商品': str,
                            '达人ID': str})

dou2['平台'] = '抖音2'
dou3 = pd.read_excel(r'G:\工作\2025年订单\11月\抖音3.xlsx',
                     dtype={'主订单编号': str, '子订单编号': str, '商品ID': str, '达人昵称': str, '选购商品': str,
                            '达人ID': str})

dou3['平台'] = '抖音3'

dou4 = pd.read_excel(r'G:\工作\2025年订单\11月\抖音4.xlsx',
                     dtype={'主订单编号': str, '子订单编号': str, '商品ID': str, '达人昵称': str, '选购商品': str,
                            '达人ID': str})

dou4['平台'] = '抖音4'
dou = pd.concat([dou1, dou2, dou3, dou4])

dou['达人ID'] = dou['达人ID'].str.strip()
dou['订单提交时间'] = pd.to_datetime(dou['订单提交时间'])
dou['时'] = dou['订单提交时间'].map(lambda x: x.hour)
dou['日期'] = dou['订单提交时间'].map(lambda x: datetime.date(x))
dou['支付完成时间'] = dou['支付完成时间'].fillna(value='1998-01-01 00:00:00')
dou['发货时间'] = dou['发货时间'].fillna(value='1998-01-01 00:00:00')


def f(x, y, z, w, m, p):  # x:选购商品 y:达人id z:流量来源 w:广告渠道 d:店铺

    if y == '4393240679422429' or ('z1' in x) or ('Z1' in x):
        return '自播1'
    elif y == '2572502459235059' or ('z3' in x) or ('Z3' in x):
        return '自播3'
    elif y == '3087847281658366' or ('z5' in x) or ('Z5' in x) or ('zb' in x):
        return '自播5'
    elif y == '246753999456383' or ('z8' in x) or ('Z8' in x):
        return '自播8'
    elif y == '4167563789207568' or ('lsf' in x):
        return '螺蛳土豆粉直播间'

    elif p == '抖音1' and ('dsp' in x):
        return '自播1'
    elif p == '抖音2' and ('dsp' in x):
        return '自播5'
    elif p == '抖音3' and ('dsp' in x):
        return '自播8'
    elif p == '抖音4' and ('dsp' in x):
        return '螺蛳土豆粉直播间'

    elif y != '0':
        return '招商'
    elif z == '精选联盟':
        return '招商'
    elif w == '商品卡':
        return '商品卡'
    else:
        return '自然单'


def g(x, y):  # x:选购商品 y:商品规格
    if '电煮锅' in x or '电煮锅' in y or '拉面锅' in x or '拉面锅' in y:
        return '电煮锅赠品'


dou['渠道'] = list(map(f, list(dou['选购商品']), list(dou['达人ID']), list(dou['流量来源']), list(dou['广告渠道']),
                       list(dou['商品ID']), list(dou['平台'])))
dou['电煮锅'] = list(map(g, list(dou['选购商品']), list(dou['商品规格'])))
dou_date = dou.loc[
    :, ['平台', '日期', '时', '订单提交时间', '主订单编号', '子订单编号', '选购商品', '商品规格', '商品数量', '商品ID',
        '商家编码', '商品单价', '订单应付金额', '平台优惠', '商家优惠', '支付方式', '省', '市', '区', '街道',
        '支付完成时间', '流量来源', '订单状态', '达人ID', '达人昵称', '售后状态', '广告渠道', '流量类型', '流量体裁',
        '流量渠道', '发货时间', '降价类优惠', '平台实际承担优惠金额', '商家实际承担优惠金额', '达人实际承担优惠金额',
        '是否福袋订单', '渠道', '电煮锅']]

dou_date = dou_date.map(lambda x: str(x).strip())

# 打开数据库连接
db = pymysql.connect(host="localhost", user="root", password="hui123456", db='dbtest')
# 使用cursor()方法创建一个游标对象cursor
cursor = db.cursor()
sqll = (
    'insert into doudian_day values (%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s)')

for val in dou_date.values:
    cursor.execute(sqll, tuple(val))

db.commit()
db.close()
